﻿using System;


namespace ClassTestWork1
{

    //Создать класс Human.
    //В классе определить поля - Имя, Фамилия, Дата рождения.
    //Имя и фамилия не могут быть null.
    //Дата рождения не может быть из будущего.
    //Реализовать свойства для установки и считывания значений полей.
    //Создать конструктор позволяющий установить значения полей класса при создании.
    //Создать 2 экземпляра класса. Вывести значение полей экземпляров на экран.

    class Human
    {
        private string firstName;
        private string lastName;
        private DateTime dateOfBirth;

        public Human(string firstName, string lastName, DateTime dateOfBirth)
        {
            FirstName = firstName;
            LastName = lastName;
            DateOfBirth = dateOfBirth;

        }

        public string FirstName
        {
            get { return firstName; }
            set
            {
                if(String.IsNullOrEmpty(value))
                    throw new ArgumentException("First Name");
                firstName = value;
            }
        }

        public string LastName
        {
            get { return lastName; }
            set
            {
                if (value == null)
                    throw new ArgumentException("Last Name");
                lastName = value;
            }
        }

        public DateTime DateOfBirth
        {
            get { return dateOfBirth; }
            set
            {
                if (value > DateTime.Now)
                    throw new ArgumentException("Invalid Date");
                dateOfBirth = value;

            }
        }

        public void PrintToConsole()
        {
            Console.WriteLine("firstName: {0}, lastName: {1}, Birthday: {2}",
                FirstName, LastName, DateOfBirth);
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            DateTime birthday = new DateTime(2015,07,1);
            Human firstHuman = new Human("Vasya" , "Pupkin", birthday);
            Human secondHuman = new Human("Petya", "Popkin", new DateTime(2015, 07, 1));

            firstHuman.PrintToConsole();
            secondHuman.PrintToConsole();

            //Console.WriteLine("firstName: {0}, lastName: {1}, Birthday: {2}", 
            //    firstHuman.FirstName, firstHuman.LastName, firstHuman.DateOfBirth);

            //Console.WriteLine("firstName: {0}, lastName: {1}, Birthday: {2}",
            //    secondHuman.FirstName,secondHuman.LastName, secondHuman.DateOfBirth);
        }
    }
}
